package myJs

import myJs.Utils._
import myJs.myPkg._
import myJs.myPkg.jquery._
import org.scalajs.dom.html.Element
import scalatags.Text.all._

import scala.scalajs.js
import scala.scalajs.js.JSConverters._
import scala.scalajs.js.annotation._

@JSExportTopLevel("Db")
object Db {

  val lymGeneList = js.Array("ARID1A", "CD79A", "GNA13", "MFHAS1", "SPEN", "ATM", "CD79b", "ID3", "MYC", "STAT6", "B2M",
    "CIITA", "IRF4", "MYD88", "TCF3", "BCL2", "CREBBP", "IRF8", "NOTCH1", "TET2", "BIRC3", "CXCR4", "ITPKB", "NOTCH2",
    "TNFAIp3", "BRAF", "DTX", "JAK3", "PIM1", "TP53", "CARD11", "EBF1", "KMT2C", "PTEN", "XPO1", "CCND1", "EP300",
    "KMT2D", "PTPN1", "CCND3", "EZH2", "MAP2K1", "SF3B1", "CD58", "FOXO1", "MEF2B", "SOCS1"
  )

  val bs68GeneList = js.Array("ALK", "BRCA2", "BRAF", "EGFR", "ERBB2", "ERBB3", "FGFR3", "KDR", "KTl", "NRGI", "RAFI",
    "TSC2", "APC", "CCNDI", "ERBB4", "FLT3", "KIT", "NTRKI", "RBI", "AR", "CD74", "ESRI", "HRAS", "MAP2K1", "NTRK2",
    "SMAD4", "ARAF", "CDK4", "FGF19", "IDHI", "MTOR", "NTRK3", "SMO", "KRAS", "ATM", "CDK6", "FGF3", "IDH2", "MYC",
    "PDGFRA", "STK11", "MET", "CDKN2A", "FGF4", "IGFIR", "NFI", "PIK3CA", "TOP2A", "RET", "BCL2L11", "CTNNBI", "FGFRI",
    "JAK1", "NOTCHI", "PTCHI", "TP53", "ROSl", "BRCAI", "DDR2", "FGFR2", "K2", "NRAS", "PTEN", "TSCI"
  )


  @JSExport("init")
  def init = {
    val values = js.Array("lym", "bs68")
    values.foreach { tmpV =>
      val y = $(s"#geneSelect option[value='${tmpV}']")
      val v = $(y).text()
      val size = tmpV match {
        case "lym" => lymGeneList.size
        case "bs68" => bs68GeneList.size
      }
      $(y).text(s"$v(${size} 基因)")
    }


  }

  @JSExport("change")
  def change(y: Element) = {
    val value = $(y).find(">option:selected").`val`().toString
    val v = value match {
      case "lym" => lymGeneList.mkString(" ")
      case "bs68" => bs68GeneList.mkString(" ")
      case _ => ""
    }
    $(":input[name='gene']").`val`(v)

  }


}
